The present invention relates, in general, to animation systems and, in particular, to systems and methods for providing user input to character animation.
It is common for conventional animation systems, such as those employed in modern video game console systems, to include devices for accepting user input related to character animation. FIG. 1 is a simplified block diagram of a conventional system 100 for providing user input for character animation. Conventional animation system 100 includes a user input module 110 for accepting user input, a central processor unit (CPU) 120 for processing the user input using algorithms and a display module 130 (e.g., a video display with three-dimensional graphics) for displaying an animated character. Typically, user input is accepted at user input module 110 from either a digital joy pad that provides an “on state” or an “off state” in multiple directions, or from an analog joystick that provides scalar values in two axes.
One drawback of conventional animation systems is that user input is limited. When limited user input is applied to an animated character, the result can be animated character movement that is too loosely controlled by the user to result in satisfying and accurate game play. For instance, if a user is providing input to an animated golfer swinging a golf club, the user would typically be expected to press a button one or more times in a given time period, t, to represent the power of the animated character's golf shot. The time period t is then input to a predetermined function, fn(t), that controls the visual feedback to the user provided by the display module (e.g., a swing animation representing a swing of the golf club at a specific shot power). With this approach, the user may not receive any visual display feedback until well after the user's input has been provided. Some conventional animation systems always display a single animation and the function fn(t) may be used to modify an aspect of the animation other than the animated golfer, such as the flight of a golf ball struck by the animated golfer.
Additional drawbacks of conventional animation systems are that the feedback loop, from user input to visual display, is discontinuous and therefore not real-time. For example, the user may have to select or specify parameters of a movement before the movement begins. The movement, or animation cannot be modified once it has begun. This is not lifelike since actually human body movements can be modified at any time. Also, often the user is only allowed to provide a binary input, as from a switch, to specify a continuous movement in an analog feedback loop.